Control method for mobile parallel manipulators

ABSTRACT

In the control method for mobile parallel manipulators, kinematic singularity and redundancy are solved through joint limits avoidance and manipulability criteria. By taking the MPM self-motion into consideration due to its redundancy, the inverse kinematic is derived using a hybrid neuro-fuzzy system, such as NeFIK. The discrete augmented Lagrangian (AL) technique is used to solve the highly nonlinear constrained multi-objective optimal control problem. An adaptive neuro-fuzzy inference system (ANFIS)-based structure (based on the result of the AL solution) is used to solve the online trajectory planning of the MPM.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to control mechanisms for robotic devices, and more particularly to a time- and energy-optimized control method for mobile parallel manipulators.

2. Description of the Related Art

U.S. Patent Application Publication Number 2012/0290131, titled “PARALLEL KINEMATIC MACHINE TRAJECTORY PLANNING METHOD” and published Nov. 15, 2012, which is hereby incorporated by reference in its entirety, discloses a parallel kinematic machine (PKM) trajectory planning method operable via a data-driven neuro-fuzzy multistage-based system. Offline planning based on robot kinematic and dynamic models, including actuators, was performed to generate a large dataset of trajectories covering most of the robot workspace and minimizing time and energy, while avoiding singularities and limits on joint angles, rates, accelerations and torques. The method implements an augmented Lagrangian solver on a decoupled form of the PKM dynamics in order to solve the resulting non-linear constrained optimal control problem. Using outcomes of the offline-planning, the data-driven neuro-fuzzy inference system was built to learn, to capture, and to optimize the desired dynamic behavior of the PKM. While the above method works for stationary machines, there remains the problem of planning a trajectory for a mobile parallel kinematic machine (MPM).

Thus, a control method for mobile parallel manipulators solving the aforementioned problems is desired.

SUMMARY OF THE INVENTION

In the present control method for mobile parallel manipulators, kinematic singularity and redundancy are solved through joint limits avoidance and manipulability criteria. By taking the MPM self-motion into consideration due to its redundancy, the inverse kinematic is derived using a hybrid neuro-fuzzy system, such as NeFIK. The discrete augmented Lagrangian (AL) technique is used to solve the highly nonlinear constrained multi-objective optimal control problem. An adaptive-neural fuzzy inference system (ANFIS)-based structure (based on the result of the AL solution) is used to solve the online trajectory planning of the MPM.

These and other features of the present invention will become readily apparent upon further review of the following specification and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a mobile parallel manipulator.

FIG. 2 is a schematic representation of locomotion capability of the MPM within designated frames of reference.

FIG. 3 is a block diagram of a controller that may be used in a control method for mobile parallel manipulators according to the present invention.

FIGS. 4A, 4B is a flowchart showing the AL algorithm function and operation used in a control method for mobile parallel manipulators according to the present invention.

FIG. 5 is a block diagram showing the AL solution for learning of an ANFIS module in a control method for mobile parallel manipulators according to the present invention.

FIG. 6 is a block diagram showing the FK solution for learning of a NeFIK module in a control method for mobile parallel manipulators according to the present invention.

Similar reference characters denote corresponding features consistently throughout the attached drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

At the outset, it will be understood that the diagrams in the Figures depicting the present control method for mobile parallel manipulators are exemplary only, and may be embodied in a dedicated electronic device having a microprocessor, microcontroller, digital signal processor, application specific integrated circuit, field programmable gate array, any combination of the aforementioned devices, or other device that combines the functionality of the control method for mobile parallel manipulators onto a single chip or multiple chips programmed to carry out the method steps described herein, or may be embodied in a general purpose computer having the appropriate peripherals attached thereto and software stored on non-transitory computer readable media, such as hard drives, programmable memory chips, floppy disks, USB drives, and the like, that can be loaded into main memory and executed by a processing unit to carry out the functionality and steps of the method described herein.

In the control method for mobile parallel manipulators, kinematic singularity and redundancy are solved through joint limits avoidance and manipulability criteria. As shown in FIG. 1, the mobile parallel manipulator (MPM) 100 is composed of a multiple degree of freedom parallel platform carried by an autonomous wheeled mobile robot. In the example shown, the manipulator is a 3-RRPaR parallel robot. A 3-RRPaR parallel manipulator has a moving platform disposed over a base, the moving platform being supported by three limbs of identical RRPaR kinematic structure in which the first R joint is actuated by a rotary actuator, where the notation of R and Pa stands for the revolute joint and parallelogram, respectively. By taking the MPM self-motion into consideration due to its redundancy, the inverse kinematic is derived using a hybrid neuro-fuzzy system, such as NeFIK. The discrete augmented Lagrangian (AL) technique is used to solve the highly nonlinear constrained multi-objective optimal control problem. An adaptive neuro-fuzzy inference system (ANFIS)-based structure (based on the result of the AL solution) is used to solve the online trajectory planning of the MPM.

The present method generates full set of torques that derive motion of the MPM 100 from start point to end point while achieving optimal time, energy, or both as required. The present control method for mobile parallel manipulators uses neuro-fuzzy structure to solve the inverse kinematic problem. The MPM 100 is composed of a multiple degree of freedom parallel platform carried by an autonomous wheeled mobile robot. The multiple degree of freedom parallel platform is a modified version of a DELTA parallel robot. The autonomous wheeled platform is a three-wheeled nonholonomic species. As shown in FIG. 2, the MPM 100 is assumed to just move on a plane. A fixed Cartesian frame (global frame) O{X_(O), Y_(O), Z_(O)} is assigned on the plane of motion, a moving frame M{X_(M), Y_(M), Z_(M)} on the mobile platform, a moving frame B{X_(B), Y_(B), Z_(B)} at the centered point B of the base platform ΔA₁A₂A₃, and another moving Cartesian frame P{X_(P), Y_(P), Z_(P)} on the triangular moving platform ΔC₁C₂C₃ at the centered point P.

For frame M, the Y_(M) axis is along the coaxial line of the two fixed wheels, X_(M) is perpendicular to Y_(M) and passes through the midpoint of the line segment connecting the two fixed wheel centers, and the Z_(M) axis is vertical to the mobile platform. In addition, the X_(B) and X_(P) axes are parallel to the X_(M) axis, and the Y_(B) and Y_(P) axes are parallel to the Y_(M) axis, respectively.

In order to get a compact structure, such as in a parallel manipulator, both the base and moving platforms are designed to be isosceles right triangles described by parameters of e and u, respectively, i.e., BA_(i)=e and PC_(i)=u, for i=1, 2, and 3. Also, the actuated variable of the i^(th) limb is denoted by angle θ_(i). The connecting joints between the upper and lower links are denoted as B, and the lengths of upper and lower links for each limb are a and b respectively. The plane of motion can be described as follows. The kinematics of the mobile platform consists of three parameters of coordinates of point M (x_(m), y_(m)) and the heading angle (φ_(m)). Referring to FIG. 1, let d be the distance between the two fixed wheels, let l_(b) be the offset of the base platform of the parallel robot with respect to the origin of frame M, and let l_(a) denote the offset of the mass center A of the mobile platform with respect to frame M. Additionally, P^(i)(x_(m) ^(i), y_(m) ^(i), φ_(m) ^(i)) and P^(i+1)(x_(m) ^(i+1), y_(m) ^(i+1), φ_(m) ^(i+1)) represent coordinates of the mobile platform at time t and t^(i+1) respectively. β_(i) and r_(i) are the corresponding yaw angle and steering radius at time t_(i). ΔS_(l), ΔS_(r), and ΔS_(m) denote the advance of the left wheel, the right wheel, and the origin of the frame M in the time interval (Δt=t^(i+1)−t^(i)), respectively.

Utilizing the plane of motion description illustrated in FIG. 2, it can be shown that

$\begin{matrix} \left\{ \begin{matrix} {{\overset{.}{x}}_{m} = {\frac{r\; c\; \varphi_{m}}{2}\left( {{\overset{.}{\theta}}_{L} + {\overset{.}{\theta}}_{r}} \right)}} \\ {{\overset{.}{y}}_{m} = {\frac{r\; s\; \varphi_{m}}{2}\left( {{\overset{.}{\theta}}_{L} + {\overset{.}{\theta}}_{r}} \right)}} \\ {{\overset{.}{\varphi}}_{m} = {\frac{r}{d}\left( {{\overset{.}{\theta}}_{r} - {\overset{.}{\theta}}_{L}} \right)}} \end{matrix} \right. & (1) \end{matrix}$

Using abbreviated notation, c stands for cosine, s stands for sine, and r is the radius of each driving wheel. Also, θ_(L), and θ_(r) denote the rotating angles of the left and right driving wheels, respectively.

Let the general coordinates of the mobile platform be designated by ξ=[x_(m) y_(m) φ_(m)θhd L θ_(r)]^(T). Solve equation (1) for the nonholonomic constraints of the MPR, which can be written as:

$\begin{matrix} {{{{D(\xi)} \cdot \overset{.}{\xi}} = 0},{where}} & (2) \\ {{D(\xi)} = \begin{bmatrix} {c\; \varphi_{m}} & {s\; \varphi_{m}} & {{- d}/2} & {- r} & 0 \\ {c\; \varphi_{m}} & {s\; \varphi_{m}} & {d/2} & 0 & {- r} \\ {s\; \varphi_{m}} & {{- c}\; \varphi_{m}} & 0 & 0 & 0 \end{bmatrix}} & (3) \end{matrix}$

The forward kinematics problem is very complex for a parallel robot, while the inverse kinematics problem is extremely straightforward, in general. The forward kinematics solution is generated for the designed MPM.

Assuming that linear (ν_(m)) and angular (ω_(m)) velocities of the mobile platform and assuming the actuated inputs of the actuators (θ_(i), i=1, 2, 3), the position (x, y, z) and orientation (φ) of the mobile platform are solved using the forward kinematics.

In this research we assume that there is no slip in the wheels of mobile platform on all directions. As Δt→0, the velocities during this time interval can be considered as a constant:

|P ^(i) P ^(i+1) |≈ΔS _(m)=ν_(m) ·Δt,

Δx _(m) ^(i) =x _(m) ^(i+1) −x _(m) ^(i) ≈|P ^(i) P ^(i+1) |·cφ _(m) ^(i)=ν_(m) ·Δt·cφ _(m) ^(i),

Δy _(m) ^(i) =y _(m) ^(i+1) −y _(m) ^(i) ≈|P ^(i) P ^(i+1) |·sφ _(m) ^(i)=ν_(m) ·Δt·sφ _(m) ^(i),

and

β≈Δφ_(m) ^(i)=φ^(i+1)−φ^(i)=ω_(m) ·Δt.  (4)

Since eq. (4) is applied in all the motions of the mobile platform, we can delete the superscript i. Thus:

$\begin{matrix} {{{\overset{.}{x}}_{m} = {{\lim\limits_{{\Delta \; t}->0}\left( \frac{\Delta \; x_{m}}{\Delta \; t} \right)} = {{v_{m} \cdot c}\; \varphi_{m}}}},{{\overset{.}{y}}_{m} = {{\lim\limits_{{\Delta \; t}->0}\left( \frac{\Delta \; y_{m}}{\Delta \; t} \right)} = {{v_{m} \cdot s}\; \varphi_{m}}}},{{\overset{.}{\varphi}}_{m} = {{\lim\limits_{{\Delta \; t}->0}\left( \frac{\Delta \; \varphi_{m}}{\Delta \; t} \right)} = {\omega_{m}.}}}} & (5) \end{matrix}$

Integration of eq. (5), gives the posture of the mobile platform:

$\begin{matrix} {{{x_{m}(t)} = {{\int_{0}^{t}{{\overset{.}{x}}_{m} \cdot {t}}} = {\int_{0}^{t}{{v_{m}(t)} \cdot {c\left( {\varphi_{m}(t)} \right)} \cdot {t}}}}},{{y_{m}(t)} = {{\int_{0}^{t}{{\overset{.}{y}}_{m} \cdot {t}}} = {\int_{0}^{t}{{v_{m}(t)} \cdot {s\left( {\varphi_{m}(t)} \right)} \cdot {t}}}}},{{\varphi_{m}(t)} = {{\int_{0}^{t}{{\overset{.}{\varphi}}_{m} \cdot {t}}} = {\int_{0}^{t}{{\omega_{m}(t)} \cdot {{t}.}}}}}} & (6) \end{matrix}$

Let us assume that the wheels of mobile platform have no slip in any direction. Let P=[x y z]^(T) and ^(B)P=[x_(p) y_(p) z_(p)]^(T) be the vectors of point P in the fixed frame O and the moving frame B, respectively. Also, in frame B, let ^(B)e_(i)={right arrow over (BA_(l))}, ^(B)b_(i)={right arrow over (A_(l)B_(l) )} and ^(B)c_(i)={right arrow over (PC_(l))}. Referring to FIG. 2, we obtain:

^(B) e _(i) =[ecφ _(i) esφ _(i)0]^(T),^(B) c _(i) =[ucφ _(i) usφ _(i)0]^(T),

^(B) b _(i) =[bcθ _(i) cφ _(i) bcθ _(i) sφ _(i) bsθ _(i)]^(T)  (7)

where φ_(i)=(iπ)/2, for i=1, 2, and 3. Since the distance between B_(i) and C_(i) is a constant a, we have:

∥^(B) P+ ^(B) c _(i)−^(B) e _(i)−^(B) b _(i) ∥=a  (8)

By substituting eq. (7) in eq. (8), we get,

x _(p) ²+(y _(p) +u−e−bcθ ₁)²+(z _(p) −bsθ ₁)² =a ²,  (9)

(x _(p) −u+e+bcθ ₂)² +y _(p) ²+(z _(p) −bsθ ₂)² =a ²,  (10)

x _(p) ²+(y _(p) +u−e−bcθ ₃)²+(z _(p) −bsθ ₃)² =a ²,  (11)

and solving equations (9) and (10) to get x_(p) and y_(p) as a function of z_(p), we get the following result:

x_(p) = −(b(2bc θ₁c θ₃w − bc θ₂wc θ₁ − bc θ₂wc θ₃ − w²c θ₁ − w²c θ₃ + 2w²c θ₂ + 2z_(p)s θ₂w + z_(p)bs θ₁c θ₃ − w z_(p)s θ₁ − wz_(p)s θ₁ − wz_(p)s θ₃ + bz_(p)c θ₁s θ₃ − bz_(p)c θ₁s θ₂ − bz_(p)c θ₃s θ₂))/(−bwc θ₁ − bwc θ₃ − 2bwc θ₂ + b²c θ₁c θ₂ + b²c θ₃c θ₂ + 2w²) $\mspace{20mu} {{y_{p} = {- \frac{b\left( {{{wc}\; \theta_{1}} - {{wc}\; \theta_{3}} + {z_{p}s\; \theta_{1}} - {z_{p}s\; \theta_{3}}} \right)}{{{- 2}w} + {{bc}\; \theta_{1}} + {{bc}\; \theta_{3}}}}},\mspace{20mu} {{{where}\mspace{14mu} w} = {u - {e.}}}}$

Substituting x_(p) and y_(p) in (11) and solving for z_(p), and then solving eq. (10) and eq. (11), leads to solutions for the forward kinematics of the parallel robot, i.e.,

$\begin{matrix} {{{x_{p} = {{f_{1}z_{p}} + f_{0}}},{y_{p} = {{e_{1}z_{p}} + e_{0}}},{z_{p} = \frac{{- h_{1}} + \sqrt{h_{1}^{2} - {4h_{2}h_{0}}}}{2\; h_{2}}}}{where}{{e_{1} = {- \frac{n_{1}}{n_{2}}}},{e_{0} = {- \frac{n_{0}}{n_{2}}}},{f_{1} = {\frac{m_{2}n_{1}}{m_{3}n_{2}} - \frac{m_{1}}{m_{3}}}},{f_{0} = {\frac{m_{2}n_{0}}{m_{3}n_{2}} - \frac{m_{0}}{m_{3}}}},{h_{2} = {1 + e_{1}^{2} + f_{1}^{2}}},{h_{1} = {2\left\lbrack {{e_{1}\left( {e_{0} + u - e - {{bc}\; \theta_{1}}} \right)} + {f_{1}f_{0}} - {{bs}\; \theta_{1}}} \right\rbrack}},{h_{0} = {\left( {e_{0} + u - e - {{bc}\; \theta_{1}}} \right)^{2} + f_{0}^{2} - a^{2} + {b^{2}s^{2}\theta_{1}}}},{m_{3} = {u - e - {{bc}\; \theta_{2}}}},{m_{2} = {u - e - {{bc}\; \theta_{1}}}},{m_{1} = {b\left( {{s\; \theta_{1}} - {s\; \theta_{1}}} \right)}},{m_{0} = {{b\left( {u - e} \right)}\left( {{c\; \theta_{2}} - {c\; \theta_{1}}} \right)}},{n_{2} = {{2\left( {u - e} \right)} - {b\left( {{c\; \theta_{1}} + {c\; \theta_{3}}} \right)}}},{n_{1} = {b\left( {{s\; \theta_{1}} - {s\; \theta_{3}}} \right)}},{and}}{n_{0} = {{b\left( {u - e} \right)}{\left( {{c\; \theta_{3}} - {c\; \theta_{1}}} \right).}}}} & (12) \end{matrix}$

The parallel robot has only a translation motion, so the rotation around the Z_(O) axis is the only factor to determine the orientation of the MPM, i.e., φ=φ_(m). Referring to FIGS. 1 and 2, one can derive the position of the mobile platform to be:

$\begin{matrix} {{p = {b + {R^{B}p}}}{with}} & (13) \\ {{b = {\overset{}{OB} = \left\lbrack {x_{m} - {l_{b}c\; \varphi_{m}\mspace{14mu} y_{m}} - {l_{b}s\; \varphi_{m}\mspace{14mu} h}} \right\rbrack^{T}}},{and}} & (14) \\ {{R = \begin{bmatrix} {c\; \varphi_{m}} & {{- s}\; \varphi_{m}} & 0 \\ {s\; \varphi_{m}} & {c\; \varphi_{m}} & 0 \\ 0 & 0 & 1 \end{bmatrix}},} & (15) \end{matrix}$

is the rotation matrix of the moving frame B regarding to the fixed frame O.

Regarding the differential kinematics analysis, let the vector for the output velocities of the moving platform be {dot over (x)}=[{dot over (x)} {dot over (y)}ż {dot over (φ)}]^(T), and the vector of input joint rates be represented by {dot over (q)}=[{dot over (θ)}₁ {dot over (θ)}_(r){dot over (θ)}₁ {dot over (θ)}₂ {dot over (θ)}₃]^(T). Differentiating eq. (13) with respect to time, leads to:

{dot over (p)}={dot over (b)}+{dot over (R)} ^(B) p+R ^(B) {dot over (p)}  (16)

Also, let {dot over (q)}_(p)=[{dot over (θ)}₁ {dot over (θ)}₂ {dot over (θ)}₃]^(T) to be the vector of actuated joint rates for the parallel robot. Taking the derivative of both sides of equations (9) through (11) with respect to time and rewriting them into a matrix form yields:

A ^(B) {dot over (p)}=B{dot over (q)} _(p)  (17)

The 3×3 forward and inverse Jacobian matrices A and B of the parallel robot can be written as:

$\begin{matrix} {{{A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix}},{B = \begin{bmatrix} b_{11} & 0 & 0 \\ 0 & b_{22} & 0 \\ 0 & 0 & b_{33} \end{bmatrix}},{with}}{{a_{11} = x_{p}},{a_{12} = {y_{p} + u - e - {{bc}\; \theta_{1}}}},{a_{13} = {z_{p} - {{bs}\; \theta_{1}}}},{a_{21} = {x_{p} - u + e + {{bc}\; \theta_{2}}}},{a_{22} = y_{p}},{a_{23} = {z_{p} - {{bs}\; \theta_{2}}}},{a_{31} = x_{p}},{a_{32} = {y_{p} - u + e + {{bc}\; \theta_{3}}}},{a_{33} = {z_{p} - {{bs}\; \theta_{3}}}},{b_{11} = {- {b\left\lbrack {{\left( {y_{p} + u - e} \right)s\; \theta_{1}} - {z_{p}c\; \theta_{1}}} \right\rbrack}}},{b_{22} = {b\left\lbrack {{\left( {x_{p} - u + e} \right)s\; \theta_{2}} - {z_{p}c\; \theta_{2}}} \right\rbrack}},{b_{33} = {b\left\lbrack {{\left( {y_{p} - u + e} \right)s\; \theta_{3}} - {z_{p}c\; \theta_{3}}} \right\rbrack}}}} & (18) \end{matrix}$

It can be derived from eq. (17) that when the parallel robot is away from the singularity:

^(B) {dot over (p)}=J _(p) {dot over (q)} _(p),  (19)

where J_(p)=A⁻¹B is the Jacobian matrix of a 3-RRPaR parallel robot. By substituting equations (14), (15) and (19) into eq. (16), and considering eq. (1), this will give:

{dot over (x)}=J{dot over (q)}  (20)

Defining J 4×5 to be the Jacobian matrix of the MPM, relating the output velocities to the actuated joint rates allows rewriting as shown in the following matrix:

$\begin{matrix} {{{J = \begin{bmatrix} J_{11} & J_{12} & \; & \; & \; \\ J_{21} & J_{22} & \; & {R\; A^{- 1}B} & \; \\ 0 & 0 & \; & \; & \; \\ {{- r}/d} & {r/d} & 0 & 0 & 0 \end{bmatrix}},{with}}{{J_{11} = {{\left( {\frac{1}{2} + \frac{y_{p}}{d}} \right)r\; c\; \varphi_{m}} - {\frac{r}{d}s\; {\varphi_{m}\left( {l_{b} - x_{b}} \right)}}}},{J_{12} = {{\left( {\frac{1}{2} - \frac{y_{p}}{d}} \right)r\; c\; \varphi_{m}} + {\frac{r}{d}s\; {\varphi_{m}\left( {l_{b} - x_{b}} \right)}}}},{J_{21} = {{\left( {\frac{1}{2} + \frac{y_{p}}{d}} \right)r\; s\; \varphi_{m}} + {\frac{r}{d}c\; {\varphi_{m}\left( {l_{b} - x_{b}} \right)}}}},{J_{22} = {{\left( {\frac{1}{2} - \frac{y_{p}}{d}} \right)r\; s\; \varphi_{m}} + {\frac{r}{d}c\; {{\varphi_{m}\left( {l_{b} - x_{b}} \right)}.}}}}}} & (21) \end{matrix}$

Taking differentiation equation (19) with respect to time gives:

{umlaut over (x)}={dot over (J)}{dot over (q)}+J{umlaut over (q)}  (22)

Solving equation (20) leads to:

{dot over (q)}=J†{dot over (x)}+(I _(5×5) −J†J){dot over (q)} _(s),  (23)

where J†=J^(T)(JJ^(T))⁻¹ the generalized pseudo inverse of J, and {dot over (q)}_(s)ε

^(5×1) is an arbitrary vector, which can be chosen to achieve a secondary task.

With respect to kinematic singularity characterization, the robot Jacobian allows motion and force transformation from the actuators to the End Effector, so that the forces demand at a given point on the trajectory need to be continuously checked for possible violation of the preset limits as the robot moves close to singularity. The condition number of the Jacobian is used as a local performance index for evaluating the velocity, accuracy, and rigidity mapping characteristics between the joint variables and the moving platform. With respect to a detailed characterization of robot singularities, from equation (16) it is clear that singularity in the MPM structure occurs in the following cases:

-   -   1^(st) case: |A|=0, and |B|≠0. This corresponds to a type-1         singularity.     -   2^(nd) case: |A|≠0, and |B|=0. This is a type-2 singularity.     -   3^(rd) case: |A|=0, and |B|=0. This is a type-3 singularity for         which both the determinant of A and B will equal to zero.         These cases are programmed to be calculated during running the         simulation.

Regarding redundancy resolution through joint limits and singularity avoidance, to include a secondary task criterion by a performance index g(q), {dot over (q)}₂ in equation (22) is chosen to be {dot over (q)}_(s)=±k∇g(q), where k is a positive real number and ∇g(q) the gradient of g(q), where a positive sign indicates that the criterion is to be maximized and a negative sign indicates minimization. To avoid joint limits we chose {dot over (q)}_(s) as follows:

{dot over (q)} _(s1)=(q _(max) −q)W(q _(min) −q)  (24)

where

$\begin{matrix} {W = {\frac{1}{2}\left( {q_{\max} - q_{\min}} \right)}} & (25) \end{matrix}$

The related criterion to avoid the singularity is to maximize the manipulability, i.e., we choose {dot over (q)}_(s), as follows:

{dot over (q)} _(s2)=√{square root over (det(JJ′))}W _(s)  (26)

where W_(s) is weight vector with appropriate dimension. The formula of the augmented function to avoid singularity and joint limits is as follows:

{dot over (q)} _(s) ={dot over (q)} _(s1) +{dot over (q)} _(s2).  (27)

Kinematic initialization first involves optimal time trajectory parameterization. Considering the MPM, the task of the robot is to move its end-effector within a limited workspace and time interval. Also, each robot joint has to produce zero rates and accelerations at the ends of the interval of motion. A cycloidal function is chosen to achieve this purpose for modeling the trajectory time (t) from 0 to T, with the normalized time s as

${s = \frac{t}{T}},$

0≦t≦T, 0≦s≦1.

The cycloidal function is characterized by the relation:

$\begin{matrix} {{{q(s)} = {s - {\frac{1}{2\pi}{\sin \left( {2\pi \; s} \right)}}}},} & (28) \end{matrix}$

where the first and second derivatives obtained are:

{dot over (q)}(s)=1−cos(2πs),  (29)

{umlaut over (q)}(s)=2π sin(s)  (30)

The cycloidal motion and its derivatives are defined within the range (−1, 1). With zero velocity and acceleration at the ends of the interval, i.e., s=0 and s=1, the initial and final joint values be detailed as q^(I) and q^(F). The maximum velocity for the motion of joint j is attained at the center of the interval, i.e. s=0.5, the maximum being {dot over (q)}_(max)={dot over (q)}(0.5)=2, so that:

$\begin{matrix} {{\left( {\overset{.}{q}}_{j} \right)_{\max}(s)} = {\frac{2}{T}{{{q_{j}^{F} - q_{j}^{I}}}.}}} & (31) \end{matrix}$

In the same way, it can be shown that the acceleration of joint j allows its maximum and minimum values at s=0.25 and s=0.75, the maximum being {umlaut over (q)}_(max)={umlaut over (q)}(0.25)={umlaut over (q)}(0.75)=2π, and hence:

$\begin{matrix} {{\left( {\overset{¨}{q}}_{j} \right)_{\max}(s)} = {\frac{2\pi}{T^{2}}{{{q_{j}^{F} - q_{j}^{I}}}.}}} & (32) \end{matrix}$

And finally, the maximum jerk of joint j is achieved at s=0.0, and s=1.0, the maximum being

$\begin{matrix} {{\overset{\ldots}{q}}_{\max} = {\overset{\ldots}{q}(0)}} \\ {= {\overset{\ldots}{q}(1)}} \\ {= {4{\pi^{2}.}}} \end{matrix}$

Thus:

$\begin{matrix} {{\left( {\overset{\dddot{}}{q}}_{j} \right)_{\max}(s)} = {\frac{4\pi^{2}}{T^{3}}{{q_{j}^{F} - q_{j}^{I}}}}} & (33) \end{matrix}$

The motion of the robot is constrained by the maximum joint velocity, accelerations and jerk that the motors produce. This can be interpreted as:

$\begin{matrix} {{{{\overset{.}{q}}_{j} \leq \left( {\overset{.}{q}}_{j} \right)_{motor}},{{\overset{¨}{q}}_{j} \leq \left( {\overset{¨}{q}}_{j} \right)_{motor}},{and}}{{{\overset{...}{q}}_{j} \leq \left( {\overset{\ldots}{q}}_{j} \right)_{motor}},.}} & (34) \end{matrix}$

This means that the strongest constraint among ({dot over (q)}_(j))_(motor), ({umlaut over (q)}_(j))_(motor), and (

)_(motor) limits the minimum-time trajectory of joint j, which means that:

$\begin{matrix} {T_{j} = {{Max}\left\{ {\frac{2{{q_{j}^{F} - q_{j}^{I}}}}{\left( {\overset{.}{q}}_{j} \right)_{motor}},\sqrt{\frac{2\pi}{\left( {\overset{¨}{q}}_{j} \right)_{motor}}{{q_{j}^{F} - q_{j}^{I}}}},\left( {\frac{4\pi^{2}}{\left( {\overset{\dddot{}}{q}}_{j} \right)_{motor}}{{q_{j}^{F} - q_{j}^{I}}}} \right)^{1/3}} \right\}}} & (35) \end{matrix}$

The overall minimum-time trajectory (for all the five joints together of the MPM) is written as:

T _(Min)=Max{T ₁ ,T ₂ ,T ₃ ,T ₄ ,T ₅}  (36)

Thus, the resulting minimum-time trajectory, which is characterized by joints position, velocity, and acceleration, is obtained as:

$\begin{matrix} {{{{q(t)} = {q^{I} + {\left( {q^{F} - q^{I}} \right)\left( {\frac{t}{T_{Min}} - {\frac{1}{2\pi}{\sin \left( {2\pi \frac{t}{T_{Min}}} \right)}}} \right)}}},{{\overset{.}{q}(t)} = {\frac{q^{F} - q^{I}}{T_{Min}}\left( {1 - {\cos \left( {2\pi \; \frac{t}{T_{Min}}} \right)}} \right)}}}{{\overset{¨}{q}(t)} = {\frac{q^{F} - q^{I}}{T_{Min}^{2}}2\pi \; {{\sin \left( {2\pi \; \frac{t}{T_{Min}}} \right)}.}}}} & (37) \end{matrix}$

Neuro-Fuzzy Inverse Kinematics (NeFIK) can assist in solving the inverse kinematics problem, which is the problem of finding the joint coordinates (q₁, q₂, q₃, q₄, q₅), from Cartesian coordinates (x, y, z, φ) where the starting and ending Cartesian positions of the manipulator are specified in the workspace of the robot. NeFIK is proposed to be used in the present method for resolving the redundancy of the inverse kinematic problem. The NeFIK is trained to produce joint position in a preferred configuration. The training dataset is generated with the aforementioned forward kinematic (FK) equations of the manipulator. The use of the FK to the learning of the NeFIK module is shown as system circuit 600 in FIG. 6. A set of derivatives of (q₁, q₂, q₃, q₄, q₅) is used to construct the true derivatives (x, y, z, φ, x_(n)), and thus to get an error on which to apply the back-propagation algorithm. {dot over (x)}_(n) related to {dot over (q)}_(s) is added to remove the redundancy of the system.

NeFIK is a multi-layer feed-forward adaptive network. The first layer is a two input layer, characterizing the Cartesian position crisp values. The last layer is a three output-layer characterizing the corresponding crisp joint values. NeFIK involves three hidden layers. The first one is the fuzzification layer, which transfers the crisp inputs to linguistic variables through sigmoidal transfer functions. The second is the rule layer, which applies the Product t-norm to produce the firing strengths of each rule. This is followed by a normalization layer. The training rule option is the Levenberg-Marquard version of the gradient back propagation algorithm. This choice allows speeding up the learning process substantially, with less iteration as compared to standard back-propagation (e.g., gradient descent). To construct NeFIK, the forward kinematic equations are applied. Its learning is obtained through 400 samples, among which 320 are considered for training, whereas the testing and validation datasets are each obtained using 10 entry samples. Training performance for NeFIK has been shown to achieve a very small root mean square error (RMSE), less than 10⁻³ in less than 10 epochs. It should be understood that the configuration used for the learning is determined among infinitely many solutions that exist for each input. The model derived by the NeFIK structure is used to process trajectories motion of the MPR where the motion is subjected to the parallel mechanism only, and where the motion is a combined motion of both the mobile and parallel structures.

The robot dynamic model is developed using a Lagrangian formalism, which includes actuators and friction models. This model allows closed-form expression of joint rates and accelerations characterizing the motion resulting from joint torques. Using the minimum-time trajectory of equation (36) and an inverse dynamic solution, one can write:

$\begin{matrix} {\tau = {\left\lbrack {{\frac{1}{T_{Min}^{2}}\left( {2{{\pi sin}\left( {2\pi \frac{t}{T_{Min}}} \right)}} \right){D(q)}} + {\frac{1}{T_{Min}}\left\lbrack {{\left( {1 - {\cos \left( {2\pi \frac{t}{T_{Min}}} \right)}} \right)\left( {{C\left( {q,\overset{.}{q}} \right)} + F_{V}} \right)} + {F_{c}{{sgn}\left( {1 - {\cos \left( {2\pi \frac{t}{T_{Min}}} \right)}} \right)}}} \right\rbrack}} \right\rbrack \left( {q^{F} - q^{I}} \right)^{T}}} & (38) \end{matrix}$

Equation (37) allows for computation of the torques τ corresponding to the joint motion (q, {dot over (q)}, {umlaut over (q)}) and then projection of T onto the admissible domain of torque limits (as provided by the manufacturer), i.e.:

τ_(i)=Max(Min(τ_(i),τ_(i Max)),τ_(i Min))  (39)

Regarding dynamic modeling, in order to get the dynamic modeling of the hybrid MPM system the Lagrange method is used. This can be done by applying Lagrange equation to the mechanical systems with either holonomic or nonholonomic constraints, along with the equations of constraint and their first and second derivatives involved into the equations of motion to produce the number of equations that is equal to the number of unknowns.

Considering ξ, which contains the variables of the mobile platform, let the generalized coordinates be ζ=[ξ^(T) θ₁ θ₂ θ₃ x y z]^(T). Notice that ζ contains all the variables of both the mobile platform and the parallel manipulator. In order to use the approach of Lagrangian equations for the derivation of the dynamic equations of the MPM, the kinetic and potential energies for all components of the manipulator must be expressed in terms of the chosen generalized coordinates and their derivatives. In this way we will get a number of equations equal to the number of the generalized coordinates (11 equations), which aids in obtaining the dynamic model.

Dynamic model analysis applies conventional simplifications, while also addressing the mechanical structure of the MPM 10. With respect to a 3-RRPaR parallel manipulator, the upper parallelogram links cause the complexity of the dynamic model. These connecting links can be made of lightweight materials, such as aluminum alloy. Because of the lightweight assumption, the dynamic modeling can be simplified by the following hypothesis. The mass of each upper link is equally divided into two portions and placed at its two extremities, i.e., one half at its lower extremity (the end of lower link) and the other half at its upper extremity (moving platform). Thus, the rotational inertias of the upper links can be neglected. Also, the castor of the mobile platform can be made to be very light, so its dynamics are neglected.

Assume that the mobile robot cannot move in the lateral direction, i.e., it satisfies the conditions of pure rolling and non-slipping. Then, regarding constraint equations, the three constraints for the mobile platform can be represented by equation (2).

Another three constraint equations for the MPM can be derive from eq. (8), i.e.:

Γ₄ =x _(p) ²+(y _(p) +u−e−bcθ ₁)²+(z _(p) bsθ ₁)² −a ²,

Γ₅=(x _(p) −u+e+bcθ ₂)² +y _(p) ²+(z _(p) −bsθ ₂)² −a ²,

Γ₆ =x _(p) ²+(y _(p) −u+e+bcθ ₃)²+(z _(p) −bsθ ₃)² −a ²,  (40)

With respect to the dynamic equations, because the mobile platform moves on a horizontal plane, there is no change in the potential energy U_(m) of the mobile platform. Thus, the kinetic energy can be calculated by:

$\begin{matrix} {T_{m} = {{\frac{1}{2}{m_{c}\left( {{\overset{.}{x}}_{m}^{2} + {\overset{.}{y}}_{m}^{2} + {l_{\alpha}^{2}{\overset{.}{\varphi}}_{m}^{2}}} \right)}} + {\frac{1}{2}I_{c}{\overset{.}{\varphi}}_{m}^{2}} + {\frac{1}{2}I_{f}{\overset{.}{\theta}}_{l}^{2}} + {\frac{1}{2}I_{f}{\overset{.}{\theta}}_{r}^{2}}}} & (41) \end{matrix}$

where m_(c) is the mass of cart including the mobile platform, the base platform and three actuators for the parallel robot, while without the two driving wheels and rotors of the two motors; is the moment of inertia of the mobile cart about a vertical axis through the mass center A, and I_(f) denotes the moment of inertia of each driving wheel and the motor rotor about the wheel axis. The potential energy of the parallel manipulator is:

$\begin{matrix} {{U_{p} = {{\left( {m_{p} + {3m_{a}}} \right)z_{p}g} + {\sum\limits_{i = 1}^{3}{\left( {{\frac{1}{2}m_{b}} + m_{a}} \right){bgs}\; \theta_{i}}}}},} & (42) \end{matrix}$

where, m_(b), m_(a), and m_(p), represent the mass of lower link, each connecting rod of upper link, and the moving platform, respectively.

The kinetic energy for the parallel manipulator consists of kinetic energy of the upper moving platform, the upper links, and the connecting rods, and is derived to be:

$\begin{matrix} {{T_{p} = {{\frac{1}{2}\left( {m_{p} + {3m_{a}}} \right)\left( {{\overset{.}{x}}^{2} + {\overset{.}{y}}^{2} + {\overset{.}{z}}^{2}} \right)} + {\frac{1}{2}I_{p}{\overset{.}{\varphi}}_{m}^{2}} + {\frac{3}{2}\left( {m_{b} + m_{a}} \right)\left( {{\overset{.}{x}}_{m}^{2} + {\overset{.}{y}}_{m}^{2} + {\left( {l_{b} + e} \right)^{2}{\overset{.}{\varphi}}_{m}^{2}}} \right)} + {\sum\limits_{i = 1}^{3}{\frac{1}{2}\left( {{\frac{1}{3}m_{b}} + m_{a}} \right)b^{2}{\overset{.}{\theta}}_{i}}}}},} & (43) \end{matrix}$

where, I_(p), denotes the moment of inertia of the moving platform about a vertical axis through its mass center. Thus, the Lagrange function for the MPM becomes:

L=T+T _(p) −U _(m) −U _(p)  (44)

The constrained dynamics for the entire system of the MPM can be determined by:

$\begin{matrix} {{{{{\frac{\;}{t}\left( \frac{\partial L}{\partial{\overset{.}{\zeta}}_{j}} \right)} - \frac{\partial L}{\partial\zeta_{j}}} = {Q_{j} + {\sum\limits_{i = 1}^{6}{\lambda_{i}\frac{\partial\Gamma_{i}}{\partial\zeta_{j}}}}}},\left( {{j = 1},2,\ldots \mspace{14mu},11} \right)}{i.e.\text{:}}{{Q_{j} = {{\frac{\;}{t}\left( \frac{\partial L}{\partial{\overset{.}{\zeta}}_{j}} \right)} - \frac{\partial L}{\partial\zeta_{j}} - {\sum\limits_{i = 1}^{6}{\lambda_{i}\frac{\partial\Gamma_{i}}{\partial\zeta_{j}}}}}},\left( {{j = 1},2,\ldots \mspace{14mu},11} \right)}} & (45) \end{matrix}$

where Q=[0 0 0 τ_(l) τ_(r) τ₁ τ₂ τ₃ 0 0 0]^(T) are the generalized forces under the assumption that no external forces/torques are exerted. Note that λ_(i) (i=1, 2, . . . , 6) are Lagrange multipliers associated with the constraints equations (2) and (22). The Lagrange multipliers can be calculated from the first set of linear equations of equation (33) for j=1, 2, 3, 9, 10, and 11. Once the Lagrange multipliers are found, the actuated torques τ=[τ_(l) τ_(r) τ₁ τ₂ τ₃]^(T) can be solved from the second set of equations of equation (27) for j=4, 5, 6, 7, and 8, which can be written into a matrix form:

H(ζ){umlaut over (q)}+V(ζ,{dot over (ζ)}){dot over (q)}+G(ζ)=τ+C(ζ)λ.  (46)

Matlab software is used to get complete expressions of eq. (46) as follows. The dynamic parameters are: m_(a)=0.2 kg, m_(b)=0.5 kg, m_(p)=0.8 kg, m_(c)=7.5 kg, I_(p)=0.00034 kg·m²,I_(c)=0.13982 kg·m², and I_(f)=0.00045 kg·m². Solving the augmented Lagrange equation gives Q_(i)=λ₄g_(1j)(ζ)+λ₅g_(2j)(ζ)+λ₆g_(4j)({umlaut over (ζ)}), where i=1, 2, 3, . . . , 11. H(ζ)=diag([A₁, A₂, A₄, A₇, A₁₀])ε

^(5×5) is the symmetric and positive definite inertial matrix. A_(l)=A₂=9/20000, A₄=A₇=A₁₀=11/750. V(ζ,{dot over (ζ)})ε

^(5×5) is the centripetal and Coriolis forces matrix, here equal to zero. G(ζ)=[0; 0; A₅; A₈; A₁₁]ε

^(5×1) represents the vector of gravity forces, A₅=0.8829 cθ₁, A₈=0.8829 cθ₂, A₁₁=0.8829 cθ₃, while λ=[λ₁ λ₂ . . . λ₆]ε

^(6×1) denotes the vector for Lagrange multipliers. Thus:

$\mspace{79mu} {{\lambda = {\begin{bmatrix} f_{1} & f_{2} & f_{3} \\ f_{5} & f_{6} & f_{7} \\ f_{9} & f_{10} & f_{11} \end{bmatrix}^{- 1}\begin{bmatrix} f_{4} \\ f_{8} \\ f_{12} \end{bmatrix}}},\mspace{79mu} {and},\text{}\mspace{79mu} {f_{1} = {{{- 0.4}\mspace{14mu} s\; \varphi_{m}c\; \theta_{1}} = {{0.08\mspace{14mu} s\; \varphi_{m}} - {0.2\mspace{14mu} c\; \varphi_{m}} + {2\left( {x_{m} - x} \right)}}}}}$      f₂ = −0.28  c φ_(m) − 0.4c φ_(m)c θ₂ + 2(x_(m) − x)      f₃ = 0.08  s φ_(m) + 0.4  s φ_(m)c θ₃ − 0.2  c φ_(m) + 2(x_(m) − x) $\mspace{79mu} {f_{4} = {1.4\overset{¨}{x}}}$      f₅ = 2(y_(m) − y) − 0.2  s φ_(m) + 0.08  c φ_(m) + 0.4c φ_(m)c θ₁      f₆ = 2(y_(m) − y) − 0.28  s φ_(m) − 0.4s φ_(m)c θ₂      f₇ = 2(y_(m) − y) − 0.2  s φ_(m) − 0.08  c φ_(m) + −0.4c φ_(m)c θ₃ $\mspace{79mu} {f_{8} = {1.4\mspace{14mu} \overset{¨}{y}}}$      f₉ = −2z + 0.4 + 0.4  s θ₁      f₁₀ = −2z + 0.4 + 0.4  s θ₂      f₁₁ = −2z + 0.4 + 0.4  s θ₃ $\mspace{79mu} {f_{12} = {{1.4\mspace{14mu} \overset{¨}{z}} + 13.734}}$ C  ( ζ ) = [ 000 0 0 0 000 0 0 0 000 - A 3 0 0 000 0 0 - A 9 ] ∈ 5 × 6   is   the   parameter   matrix   for   λ .  A 3 = 0.4  s   θ 1  s   φ m  ( x - x m ) - 0.4   s   θ 1  c   φ m  ( y + y m ) + 0.016   s   θ 1 + 0.4  c   θ 1  z - 0.08  c   θ 1 A₆ = 0.4s θ₂c φ_(m)(x − x_(m)) + 0.4  s θ₂s φ_(m)(y − y_(m)) + 0.056  s θ₂ + 0.4c θ₂z − 0.08c θ₂ A₉ = −0.4  s θ₃s φ_(m)(x − x_(m)) + 0.4  s θ₃c φ_(m)(y − y_(m)) + 0.016  s θ₃ + 0.4c θ₃z − 0.08c θ₃.

Recalling equation (20), {dot over (q)}=J†{dot over (x)}+(I_(5×5)−J†J){dot over (q)}_(s). Let J_(n)ε

^(5×1) be the normalized base of n(J) which is the null space of J. Then we have:

JJ _(n)=0_(4×1) ,J _(n) ^(T) J _(n)=1,

J _(n) ^(T) J†=0_(1×4) ,J _(n) J _(n) ^(T) =I _(5×5) −J†J  (47)

By definition of x_(n)=J_(n) ^(T){dot over (q)}_(s), so that it can be shown that:

{dot over (q)}=J†{dot over (x)}+J _(n) {dot over (x)} _(n)

{umlaut over (q)}=J†{umlaut over (x)}−J†{dot over (J)}J†{dot over (x)}+J _(n) {umlaut over (x)} _(n) −J†{dot over (J)}J _(n) {dot over (x)} _(n)  (48)

With the definition of x_(E)=[x^(T)x_(n) ^(T)]^(T), and J_(E) ^(†)=[J^(†)J_(n)], then substituting eq. 5.2 into equation (28), we can get the derivation of the dynamic equations described in Cartesian space, which is described by the following equation:

H (ζ){umlaut over (x)} _(E) + V (ζ,{dot over (ζ)}){dot over (x)} _(E) + G (ζ)= τ,  (49)

where

H (ζ)=J _(E) ^(†) ^(T) H(ζ)J _(E) ^(†),

V (ζ,{dot over (ζ)})=J _(E) ^(†) ^(T) [V(ζ,{dot over (ζ)})−H(ζ)J ^(†) ^(T) {dot over (J)}]J _(E) ^(†),

G (ζ)=J _(E) ^(†) ^(T) [G(ζ)−c(ζ)λ], and

τ=J _(E) ^(†) ^(T) τ.  (49)

Regarding discrete time dynamic model, from a state-space form of the continuous-time dynamic model of the MPM we obtain the approximate state space discrete-time model. By deleting the time index and the contact forces, from equation (42) we obtain:

{umlaut over (x)} _(E) = H ⁻¹(ζ) τ− H ⁻¹(ζ)( V (ζ,{dot over (ζ)}){dot over (x)} _(E) + G (ζ))  (50)

Using the state x₁, and its time derivative x₂, such that x₁=x_(E) and x₂={dot over (x)}_(E) i.e., x=[x₁ ^(T) x₂ ^(T)]^(T), equation (47) is rewritten as:

H (ζ){dot over (x)} ₂ + V (ζ,{dot over (ζ)})x ₂ + G (ζ)= τ  (51)

Also, equation (48) can be transformed to the following form:

$\begin{matrix} {\overset{.}{x} = {{\begin{bmatrix} 0_{5 \times 5} & I_{5 \times 5} \\ 0_{5 \times 5} & 0_{5 \times 5} \end{bmatrix}x} - \begin{bmatrix} 0_{5 \times 1} \\ {{{\overset{\_}{H}}^{- 1}(\zeta)}\left( {{{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right)} \end{bmatrix} + {\begin{bmatrix} 0_{5 \times 5} \\ {{\overset{\_}{H}}^{- 1}(\zeta)} \end{bmatrix}\overset{\_}{\tau}}}} & (52) \end{matrix}$

To obtain the discrete time dynamic model of the MPM, equation (49) is expressed as follows:

{dot over (x)}=Fx−D(x)+B(x) τ  (53)

where

$\begin{matrix} {{{F = \begin{bmatrix} 0_{5 \times 5} & I_{5 \times 5} \\ 0_{5 \times 5} & 0_{5 \times 5} \end{bmatrix}},{{D(x)} = \begin{bmatrix} 0_{5 \times 1} \\ {{{\overset{\_}{H}}^{- 1}(\zeta)}\left( {{{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right)} \end{bmatrix}},{and}}{{B(x)} = {\begin{bmatrix} 0_{5 \times 5} \\ {{\overset{\_}{H}}^{- 1}(\zeta)} \end{bmatrix}.}}} & (54) \end{matrix}$

By defining the sampling period as h_(k), such that h_(k)<t<h_(k+1) and τ_(k=1) ^(N)h_(k)=T, with being the total traveling time and the robot state is defined between two sampling points k and k+1 as:

x(t)=x(h _(k)), for k=1,2, . . . ,N.  (55)

The discrete time model to model equation (50) is written as:

x _(k+1) =F _(d)(h _(k))x _(k) −D _(d)(x _(k) ,h _(k))+B _(d)(x _(k) ,h _(k)) τhd k,  (56)

where F_(d), D_(d) and B_(d) are the discrete equivalents to F, D, and B matrices, and described below.

$\begin{matrix} {\begin{matrix} {{F_{d}\left( h_{k} \right)} = {F_{d}\left( {{k + 1},k} \right)}} \\ {= e^{{Fh}_{k}}} \\ {\overset{\sim}{=}\begin{bmatrix} I_{5 \times 5} & {h_{k}I_{5 \times 5}} \\ 0_{5 \times 5} & I_{5 \times 5} \end{bmatrix}} \end{matrix}\begin{matrix} {{D_{d}\left( {x_{k},h_{k}} \right)} = {\int_{0}^{h_{k}}{{F_{d}\left( {h_{k} - t} \right)}{G\left( {h_{k} - t} \right)}\left( {D\left( x_{k} \right)} \right)\ {t}}}} \\ {\overset{\sim}{=}{{{{\overset{\_}{H}}^{- 1}(\zeta)}\begin{bmatrix} {\frac{h_{k}^{2}}{2}I_{5 \times 5}} \\ {h_{k}I_{5 \times 5}} \end{bmatrix}}\left( {{{\overset{\_}{V}\left( {\zeta,\zeta} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right)}} \end{matrix}\begin{matrix} {{B_{d}\left( {x_{k},h_{k}} \right)} = {\int_{0}^{h_{k}}{{F_{d}\left( {h_{k} - t} \right)}{B\left( x_{k} \right)}{t}}}} \\ {= {\begin{bmatrix} {\frac{h_{k}^{2}}{2}I_{5 \times 5}} \\ {h_{k}I_{5 \times 5}} \end{bmatrix}{{\overset{\_}{H}}^{- 1}(\zeta)}}} \end{matrix}} & (57) \end{matrix}$

So, the discrete time state-space dynamic model of the MPM is rewritten in the final form:

$\begin{matrix} {x_{k + 1} = {{\begin{bmatrix} I_{5 \times 5} & {h_{k}I_{5 \times 5}} \\ 0_{5 \times 5} & I_{5 \times 5} \end{bmatrix}x_{k}} - {\begin{bmatrix} {\frac{h_{k}^{2}}{2}I_{5 \times 5}} \\ {h_{k}I_{5 \times 5}} \end{bmatrix}{{\overset{\_}{H}}^{- 1}(\zeta)}\left( {{{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {{{\overset{\_}{H}}^{- 1}(\zeta)}\tau_{k}} + {\overset{\_}{G}(\zeta)}} \right)}}} & (58) \end{matrix}$

Regarding constraints modeling, the task of robotics simulation requires taking into consideration many constraints, such as the nominal values of kinematic and dynamic parameter (for example, the length of the link, velocities, accelerations, and also nominal torques that the actuators supported). These constraints are defined in joint space and in task space.

The robot constraints include nonholonomic constraints wherein the mobile robot cannot move in the lateral direction, i.e., it satisfies the conditions of pure rolling and non-slipping. Then, the three constraints for the mobile platform can be represented by equation (2).

Dynamic state equations consist of equation (55), which can be rewritten in the following formula:

x _(k+1) =f _(d) _(k) (x _(k),τ_(k) ,h _(k))  (59)

Limits on the intermediate lengths of links are expressed by equation (22), from which the limits of the angles are found utilizing the fact that each angle of the parallel manipulator is between 0.65 and 1.65 radian, and for the mobile platform it is between −10 radian and 10 radian. Singularity avoidance is performed as described above.

Regarding torque limits, another major issue for trajectory planning is not violating the control torque limits. In this research, we assume that the robot torques belong to a bounded set C⊂

^(N), as shown in the following formula:

C={τ _(k)ε

^(N), such that: τ_(min)≦τ_(k)≦τ_(max) ,k=0,N−1}  (60)

With respect to sampling period limits, since the torque constraints bound indirectly the path traversal time, in order to achieve admissible solution to the optimal control problem, the overall robot traveling time T should not be too small. Also, in order to achieve system controllability, the sampling period must be smaller than the system smallest time mechanical constant between two control times. In this research, time mechanical constant and limits of sampling periods are assumed to be available previously.

Now, H is defined to be the sampling period:

H={h _(k)ε

⁺, such that:h _(min) ≦h _(k) ≦h _(max)}  (61)

Task and workspace constraints are basically geometric and kinematic, from which the size and shape of the manipulator workspace is determined. These constraints are expressed by imposing to the end effector (EE) to pass through a set of specified poses. These constraints represent equality constraints and are written for simplicity as:

s ₁ ^(l)(x)=∥p−p _(l) ∥−T _(PassThlp)=0

s ₂ ^(l)(x)=∥vect(R ^(T) R _(l))∥−T _(PassThl) _(R) =0,l=1, . . . L  (62)

The above inequality constraints are written in the following simplified forms:

g ₁(x)=q _(min)−Θ(x)≦0,g ₂(x)=Θ(x)−q _(Max)≦0

g ₃(τ)=τ_(Min)−τ≦0,g ₄(τ)=τ−τ_(Max≦)0,  (63)

where q_(Min/Max) and τ_(Min/Max) are for (θ₁, θ₂, θ₃), all inequality constraints will be noted as g_(j)(x, τ, h)≦0,j=1, . . . ,4, regardless if they depend only on state, control variables or both. Hence, we turn up with J=12 inequality constraints, 2 L equality constraints (imposed passages), and 6 equality constraints representing state dynamics equations.

To validate the effectiveness of the established dynamic model for the MPM, the dynamic control in task space is implemented by resorting to a model-based controller. Since the number of coordinates in task space is less than that in joint space, the proposed MPM possesses self-motion with one degree of redundancy. In this research, a simple solution is presented to stabilize the redundant robotic system.

In the model-based controller design, the desired trajectories, velocities and accelerations (x_(d), {dot over (x)}_(d), {umlaut over (x)}_(d)) can be determined in advance, and the desired self-motions x_(nd), {dot over (x)}_(nd), and {umlaut over (x)}_(nd) can be selected to perform secondary tasks besides the one in task space. Here, the self motion is exploited to optimize the problem of minimizing {{dot over (q)}^(T), {umlaut over (q)}}, subject to {dot over (x)}=J{dot over (q)}. The model-based control system 300 is illustrated in the block diagram of FIG. 3 and comprises position and rate control subsystems 302, 304, and 306, gain constants K_(D) 310 and K_(P) 312, acceleration bias constant 311, a matrix multiply unit 314 and an angular controller 316 in operable communication with a processor 308 on the robot. Let x_(Ed)=[x_(d) ^(T) x_(nd) ^(T)]^(T), then the error system can be defined by:

e=x _(Ed) −x _(E)0  (64)

The adopted model-based controller is expressed in terms of positive definite constant gain matrices:

τ=J _(E) ^(T) [ H ({umlaut over (x)} _(Ed) +K _(D) ė+K _(P) e)+ V{dot over (x)} _(E) + G]  (65)

where K_(D) and K_(P) are the positive definite constant gain matrices. The error equation can then be generated accordingly as:

ë+K _(D) e+K _(P) e=0.  (66)

Regarding simulation results for model validation, the dynamic control algorithm is implemented in task space such that the moving platform can track a desired trajectory, and the simulations are carried out via Matlab and Simulink software. Two desired trajectories are selected such that no kinematic singularity is encountered. The two trajectories consisted of a linear locus and a parabola-like special locus. The heading angle is assigned as φ_(d)=0 in the first curve, and 0.1 t in the second. The architectural parameters of the designed MPM are: a=0.2 m, b=0.2 m, e=0.16 m, u=0.12 m, d=0.4 m, h=0.2 m, r=0.08 m, l_(a)=0.2 m and l_(b)=0.1. The dynamic parameters are: m_(a)=0.2 kg, m_(b)=0.5 kg, m_(p)=0.8 kg, m_(c)=7.5 kg, I_(p)=0.00034 kg·m², I_(c)=0.13982 kg·m², and I_(f)=0.00045 kg·m². In the simulation, all parameters are supposed to be accurate enough. The actuated joint angles are initialized to be at home position. Additionally, the simulation time interval is selected as 10 seconds, and the gain matrices are selected as K_(D)=diag {10} and K_(P)=diag {25}. The simulation revealed that both the position and heading angular errors can be eliminated by the model-based controller employing the present method. Moreover, if proper gains are chosen, the initial errors can be decreased rapidly.

Two extra simulations are carried out to see the effect of choosing {dot over (q)}_(s). In the first simulation, {dot over (q)}_(s) is put equal to a vector of 0.001 s, and in the second simulation, to 0.0001. In each case, we calculate the condition number of the Jacobean matrix J and plot it with time. Simulation results revealed that the value of 4, affects the condition number of J, and that the condition number is increasing highly as time increases, while it becomes stable around 1.8, which indicates good behavior. It should be noticed that by combining a mobile platform with a parallel robot, the problem of stability may occur, since in some postures the external forces would cause the manipulator to topple. In addition, regarding accurate navigation of the MPM, the odometric error containing both systematic and nonsystematic components should be taken into account for practical applications.

In general, any cost function with a physical sense can be optimized, and in robotics, several criteria have been implemented to obtain control optimization problem. The cost function can be defined according to task and planning objectives. The general objective function for a robot controlled in discrete time can be written in the following formula (P1):

$\begin{matrix} {{E_{d} = {{F\left\lbrack x_{N} \right\rbrack} + {\sum\limits_{k = 0}^{N - 1}{L\left\lbrack {x_{k},\tau_{k}} \right\rbrack}}}},} & (67) \end{matrix}$

where F[x_(N)] is a cost associated to the final state, whereas the second term in the right-hand side of the equation is related to the instantaneous state and control input variables (i.e., at time t_(k)=kh). The robot state and input vectors x_(k) and τ_(k) are related by the discrete dynamic model represented by equation (39).

The Minimum Time Control of robotic systems corresponds to F=0, L=1. In the mentioned criterion, (P1) had been widely considered by several authors. This is of interest, considering production targets in industrial mass production processes. But, the major disadvantage of this control method is its Bang-Bang character, which produces non-smooth trajectories, which hastens the mechanical fatigue of the machine. The sampling periods are defined such that the overall robot traveling time is:

$\begin{matrix} {{T = {\sum\limits_{k = 0}^{N - 1}h_{k}}},} & (68) \end{matrix}$

where h_(k) is the robot traveling time between two successive discrete configurations k and k+1, k=0, . . . , N−1.

In a first approach to the minimum time control problem, we consider a fixed sampling period h and search for a minimum number N of discretizations of the trajectory. This is equivalent to bringing the robot from an initial configuration x_(s) to a final imposed one x_(T) within a minimum number N of steps. For highly nonlinear and coupled mechanical systems, such as the MPM, it is impractical, even by using symbolic calculations.

In a second approach to the minimum time control problem, we consider a fixed number of discretizations N and vary the sampling time h_(k). This means that the robot moves from an initial configuration x_(s) to a final imposed one x_(T) within a fixed number of steps N while varying the sampling period's h_(k).

The minimum energy control problem is formulated as the case, while minimizing electrical energy cost, the robot moves from a starting point x_(s) to a target point x_(T). Thus, the governing criterion is characterized by the relation:

F=0 and L=Σ _(k=0) ^(N−1)τ_(k) ^(T) Rτ _(k)  (69)

Using this criterion, or in general, using quadratic criterion, such as kinetic-energy criterion, (L=Σ_(k=0) ^(N−1)v_(k) ^(T)Rv_(k), v is the velocity vector), the obtained trajectory is smoother, as it steers away from discontinuous trajectories.

The redundancy resolution and singularity avoidance control problem is addressed as follows. Because of the redundancy robots, the Jacobian J is not a square matrix. The kinematic redundancy might be used to solve the inverse kinematics by optimizing a secondary criterion.

An objective functional for the considered problem is developed, taking into consideration the performance index as it relates to energy consumption, traveling time, and singularity avoidance. For time criterion, as shown in the preceding, there are two basic ways to perform optimization. The first one fixes the sampling period h and searches for a minimum number N of discretizations. The second one fixes the number of discretizations N and varies the sampling periods h_(k). In this research, the number of sampling periods from an initial feasible kinematic solution is estimated. Then the sampling periods and the actuator torques are considered as control variables. In continuous-time, the constrained optimal control problem can be stated as follows.

Choosing all admissible control sequences τ(t)εC and hεH, which cause the robot to move from an initial state x(t_(o))=x_(S) to a final state x(t_(T))=X_(T), find those that minimize the cost function E:

$\begin{matrix} {{E = {\min\limits_{\underset{t_{o},{t_{T} \in H}}{{\tau {(t)}} \in C}}{\int_{t_{o}}^{t_{T}}\left\{ {\left\lbrack {{{\tau (t)}U\; {\tau^{T}(t)}} + t_{1} + {\frac{1}{2}{x_{2}(t)}{Qx}_{2}^{T}} + {{\delta\omega}\left( {x_{1}(t)} \right)}} \right\rbrack \ {t}} \right\}}}},} & (70) \end{matrix}$

Subject to constraints (53)-(60), with C, H, U, Q, t and δ being, respectively, the set of admissible torques, the set of admissible sampling periods, electric energy, kinetic energy, and time weights, and a weight factor for singularity avoidance, the corresponding discrete-time optimal control problem consists of finding the optimal sequences (τ₀, τ₂, . . . , τ_(N−1)) and (h₀, h₂, . . . , h_(N−1)), allowing the robot to move from an initial state x₀=x_(S) to a target state x_(N)=x_(T), while minimizing the cost E_(d):

$\begin{matrix} {{\min\limits_{\underset{t_{o},{t_{T} \in H}}{{\tau {(t)}} \in C}}E_{d}} = \left\{ {\sum\limits_{k = 0}^{N - 1}{\left\lbrack {{\tau_{k}U\; \tau_{k}^{T}} + t + {x_{2k}{Qx}_{2k}^{T}} + {{\delta\omega}\left( {x_{1k}(t)} \right)}} \right\rbrack h_{k}}} \right\}} & (71) \end{matrix}$

subject to:

x _(k+1) =f _(d) _(k) (x _(k),τ_(k) ,h _(k)),k=0, . . . ,N−1,

g _(j)(x _(k),τ_(k) ,h _(k))≦0,j=1, . . . ,J,k=0, . . . ,N−1, and

s _(j)(x _(k))=0,i=1, . . . ,2L,k=0, . . . ,N.

In the Augmented Lagrangian Approach for solving the stated Minimum Time-Energy Singularity-Free Trajectory Planning (MTE-SF-TP) n constrained on-linear control problem, there are two basic approaches. These are dynamic programming, and variational calculus through the Maximum principle of Pontryagin. In the dynamic programming is used to find a global optimal control. The optimal feedback control is through Hamilton-Jacobi-Bellman partial differential equations (HJB-PDE).

For linear-quadratic regulator problems, the HJB-PDE can be solved analytically or numerically by solving either an algebraic or dynamic matrix Riccati equation. For a general case, however, the PDE can be solved numerically for very small state dimensions only.

Adding the inequality constraints on state and control variables makes the problem harder. In this research, we propose to use the second approach to solve this problem. The Augmented Lagrangian (AL) is used to solve the resulting nonlinear and non-convex constrained optimal control problem. Powell and Hestens originated independently the method of using the AL. The AL function transforms the constrained problem into a non-constrained one, where the degree of penalty for violating the constraints is regulated by penalty parameters. After that, several authors improved it. Moreover, AL might be convexified to some extent with a judicious choice of the penalty coefficient. This procedure had been previously implemented in several cases of robotic systems. The AL function transforming the constrained optimal control problem into an unconstrained one is written as:

$\begin{matrix} {{L_{\mu}\left( {x,\tau,h,\lambda,\rho,\sigma} \right)} = {{\sum\limits_{k = 1}^{N}{\left\lbrack {{\tau_{k}^{T}U\; \tau_{k}} + t + {x_{2k}^{T}{Qx}_{2k}} + {{\delta\omega}\left( x_{1k} \right)}} \right\rbrack h_{k}}} + {\sum\limits_{k = 0}^{N - 1}\left\{ {\lambda_{k + 1}^{T}\left( {x_{k + 1} - {f_{d_{k}}\left( {x_{k},\tau_{k},h_{k}} \right)}} \right)} \right\}} + {\sum\limits_{k = 0}^{N - 1}{h_{k}\begin{bmatrix} {{\sum\limits_{i = 1}^{L - 1}{\sum\limits_{i = 1}^{2}{\Psi_{\mu_{s}}\left( {\sigma_{k}^{i},{s_{i}^{l}\left( x_{k} \right)}} \right)}}} +} \\ {\sum\limits_{j = 1}^{J}{\Phi_{\mu_{g}}\left( {\rho_{k}^{j},{g_{j}\left( {x_{k},\tau_{k},h_{k}} \right)}} \right)}} \end{bmatrix}}} + {\underset{\;}{\overset{\;}{\;}}\; {\sum\limits^{\;}\; {h_{N}{\Psi_{\mu_{s}}\left( {\sigma_{k}^{i},s_{i}^{l},\left( x_{k} \right)} \right)}}}}}} & (72) \end{matrix}$

where the function ƒ_(d) _(k) (x_(k), τ_(k),h_(k)) is defined by the discrete state eq. (58) at the sampling time k, N is the total sampling number, λεR^(12N) designates the ajoint (or co-state) obtained from the adjunct equations associated to state equations, ρ,σ are Lagrange multipliers with appropriate dimensions associated to equality and inequality constraints, and μ_(g),μ_(s) are the corresponding penalty coefficients. The penalty functions adopted here combine penalty and dual methods. This allows relaxation of the inequality constraints as soon as they are satisfied. Typically, these penalty functions are defined by:

$\begin{matrix} {{{\psi_{\mu_{s}}\left( {a,b} \right)} = {\left( {a + {\frac{\mu_{s}}{2}b}} \right)^{T}b}},{{{and}\mspace{14mu} \varphi_{\mu_{g}}} = {\frac{1}{2\mu_{g}}\left\{ {{{{Max}\left( {0,{a + {\mu_{g}b}}} \right)}}^{2} - {a}^{2}} \right\}}}} & (73) \end{matrix}$

where a and b refer, respectively, to Lagrange multipliers and the left-hand side of equality and inequality constraints.

The requirements for the Karush-Kuhn-Tucker first order optimality necessary conditions are that there must exist some positive Lagrange multipliers (λ_(k),ρ_(k)), unrestricted sign multipliers σ_(k), and finite positive penalty coefficients (μ_(g),μ_(s)), for x_(k), τ_(k), h_(k), k=0, . . . , N for there to be a solution to the problem, such that:

$\begin{matrix} {{{\frac{\partial L_{\mu}}{\partial x} = 0},{\frac{\partial L_{\mu}}{\partial\tau} = 0},{\frac{\partial L_{\mu}}{\partial h} = 0},{\frac{\partial L_{\mu}}{\partial\lambda} = 0},{\frac{\partial L_{\mu}}{\partial\rho} = 0},{\frac{\partial L_{\mu}}{\partial\sigma} = 0},\mspace{79mu} {and}}\mspace{79mu} {{{\rho_{k}^{T}{g\left( {x,\tau,h} \right)}} = 0},\mspace{79mu} {{\sigma_{k}^{T}{s(x)}} = 0},\mspace{79mu} {{g\left( {x,\tau,h} \right)} \leq 0}}} & (74) \end{matrix}$

Application of these conditions allows deriving the iterative formulas to solve the optimal control problem by adjusting control variables and Lagrange multipliers, as well as penalty coefficients and tolerances. However, establishing the necessary conditions entails problems of an intractable complexity, even by using symbolic calculation.

In the constrained linear-decoupled formulation, the major computational difficulty mentioned earlier cannot be solved by performing with the original nonlinear formulation. Instead, it is solved using a linear-decoupled formulation. The present method utilizes the theorem stating that, provided that the inertia matrix is invertible, then the control law in the Cartesian space is defined as:

u= H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ)  (75)

This leads the robot to have a linear and decoupled behavior with a dynamic equation:

{dot over (x)} ₂=ν  (76)

where ν is an auxiliary input. This follows simply by substituting the proposed control law of equation (75) into the dynamic model equation (39) to obtain:

H (ζ){dot over (x)} ₂ = H (ζ)ν.  (77)

Since H(ζ) is invertible, it follows that {dot over (x)}₂=ν. This brings the robot to have the decoupled and linear behavior described by the following linear dynamic equation written in discrete form as:

x _(k+1) =F _(dk) x _(k) +B(h _(k))(ν_(k))=f _(d) _(k) ^(D)(x _(k),ν_(k) ,h _(k))  (78)

where

${f_{d_{k}}^{D}\left( {x_{k},v_{k},h_{k}} \right)} = {{\begin{bmatrix} I_{5 \times 5} & {h_{k}I_{5 \times 5}} \\ 0_{5 \times 5} & I_{5 \times 5} \end{bmatrix}x_{k}} - {\begin{bmatrix} {\frac{h_{k}^{2}}{2}I_{5 \times 5}} \\ {h_{k}I_{5 \times 5}} \end{bmatrix}{v_{k}.}}}$

Notice that this formulation drastically reduces the computations by alleviating the calculation at each iteration of the inertia matrix inverse and its derivatives with respect to state variables, which results in ease of calculation of the co-states. The non-linearity is, however, transferred to the objective function. One problem of this formula, which is Euler's method, is less accuracy. In order to improve accuracy, and because the MPM structure contains highly nonlinear equations, as shown above, we use the Adams-Bashforth Formula, given by the following general formula:

$\begin{matrix} {y_{i + 1} = {y_{i} + {\frac{h}{2}\left( {{3f_{i}} - f_{i - 1}} \right)} + {\frac{5}{12}h^{3}f_{i}}}} & (79) \end{matrix}$

Applying the Adams-Bashforth Formula of eq. (79) to the dynamic equation (78) gives:

$\begin{matrix} {x_{1_{k + 1}} = {x_{1_{k}} + {1.5h_{k}x_{2_{k}}} + {0.5h_{k}x_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}v_{2_{k}}}}} & (80) \\ {x_{2_{k + 1}} = {x_{2_{k}} + {1.5h_{k}v_{2_{k}}} + {0.5h_{k}v_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}{\overset{.}{v}}_{2_{k}}}}} & (81) \end{matrix}$

Since it is difficult to get the derivative of ν_(k), and to improve accuracy, the following formulas from numerical differentiation methods are used:

{dot over (y)} ₁=(y ₂ −y ₁)/h ₁  (82)

{dot over (y)} ₂=(y ₃ −y ₁)/2h ₂  (83)

{dot over (y)} _(k)=(−y _(k+2)+8y _(k+1)−8y _(k−1) +y _(k−2))/12h _(k)  (84)

{dot over (y)} _(N−1)=(y _(N) −y _(N−2))/2h ₂  (85)

{dot over (y)} _(N−1)=(y _(N) −y _(N−1))/h ₂  (86)

Now, the decoupled formulation transforms the discrete optimal control problem into finding optimal sequences of sampling periods and acceleration inputs h₀, h₂, . . . , h_(N−1), ν₀, ν₂, ν_(N−1), allowing the robot to move from an initial state x₀=x_(S) to a final state x_(N)=x_(T), while minimizing the cost function:

$\begin{matrix} {E_{d}^{D} = {\underset{\underset{h_{k}}{v \in V}}{Min}\; \left\{ {{\sum\limits_{k = 0}^{N - 1}\; \left. \quad{\left\lbrack {{\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack^{T}{U\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G{\quad\quad}}( \zeta)}} \right\rbrack}} + t + {x_{2k}^{T}{Qx}_{2k}} + {{\delta\omega}\left( x_{1k} \right)}} \right\rbrack h_{k}} \right\}},} \right.}} & (87) \end{matrix}$

under the above mentioned constraints, which remain the same, except actuator torques, which become:

τ_(min) ≦ H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ)≦τ_(max)  (88)

Henceforth, inequality constraints g₃ and g₄ can be rewritten as:

g ₃ ^(D)(x _(k) ,v _(k))=τ_(min) −[ H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ)]≦0  (89)

g ₃ ^(D)(x _(k) ,v _(k))=[ H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ)]−τ_(max)≦0  (90)

Similar to the non-decoupled case, the decoupled problem might be written in the following form:

$\underset{\underset{h_{k}}{v \in V}}{Min}\; E_{d}^{D}$

subject to:

x _(k+1) =f _(d) _(k) ^(D)(x _(k),τ_(k) ,h _(k)),k=0, . . . ,N−1,

g _(j) ^(D)(x _(k),ν_(k) ,h _(k))≦0,jε{1,2, . . . ,J}, and

S _(j) ^(D)(x _(k))=0,iε{1,2, . . . ,I},k=0, . . . N.  (91)

The augmented Lagrangian associated to the decoupled formulation (P) is as follows:

$\begin{matrix} {{L_{\mu}^{D}\left( {x,v,h,\lambda,\rho,\sigma} \right)} = {{\sum\limits_{k = 0}^{N - 1}\; \left\{ {\left\lbrack {{\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack^{T}{U\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}} + t + {x_{2k}^{T}{Qx}_{2k}} + {{\delta\omega}\left( x_{1k} \right)}} \right\rbrack h_{k}} \right\}} + {\sum\limits_{k = 0}^{N - 1}\; \left\{ {\lambda_{k + 1}^{T}\left( {x_{k + 1} - {f_{d_{k}}\left( {x_{k},\tau_{k},h_{k}} \right)}} \right)} \right\}} + {\sum\limits_{k = 0}^{N - 1}\; {h_{k}{\quad{\left\lbrack {{\sum\limits_{l = 1}^{L - 1}\; {\sum\limits_{i = 1}^{2}\; {\psi_{\mu_{s}}\left( {\sigma_{k}^{i},{s_{i}^{Dl}\left( x_{k} \right)}} \right)}}} + {\sum\limits_{j = 1}^{J}\; {\varphi_{\mu_{g\;}}\left( {\rho_{k}^{j},{g_{j}^{D}\left( {x_{k},\tau_{k},h_{k}} \right)}} \right)}}} \right\rbrack + {\sum\limits_{i = 1}^{2}\; {h_{N}{\psi_{\mu_{s}}\left( {\sigma_{N}^{i},{s_{i}^{D\; 1}\left( x_{k} \right)}} \right)}}}}}}}}} & (92) \end{matrix}$

where the function ƒ_(d) _(k) (x_(k), τ_(k), h_(k)) is defined by eq. (78) at time k, N is the total sampling number, and other parameters appearing in (86) are defined above.

The first order Karush-Kuhn-Tucker optimality necessary conditions require that for x_(k), ν_(k), h_(k), k=0, . . . , N to be a solution to the problem (P), there must exist some positive Lagrange multipliers (λ_(k), ρ_(k)), unrestricted sign multipliers σ_(k), and finite positive penalty coefficients μ=(μ_(g),μ_(s)) such that equations (74) are satisfied for the decoupled formulation. The co-states λ_(k) are determined by backward integration of the adjunct state equation yielding:

$\begin{matrix} {\lambda_{k - 1} = {{{- 2}h_{k}\frac{\partial\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}{\partial x_{k}}{U\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}} - {2{Qx}_{2k}h_{k}} - {\delta {\nabla_{x_{1k}}{\omega \left( x_{1k} \right)}}} - {F_{d}^{T}\lambda_{k}} - {h_{k}\left\lbrack {\sum\limits_{l = 1}^{L - 1}\; {\sum\limits_{i = 1}^{2}\; {\nabla_{x_{k}}{\psi_{\mu_{s}}\left( {\sigma_{k}^{i},{s_{i}^{D\; 1}\left( x_{k} \right)}} \right)}}}} \right\rbrack} - {h_{k}\left\lbrack {\sum\limits_{j = 1}^{J}\; {\nabla_{x_{k}}{\varphi_{\mu_{g}}\left( {\rho_{k}^{j},{g_{j}^{D}\left( {x_{k},v_{k},h_{k}} \right)}} \right)}}} \right\rbrack}}} & (93) \end{matrix}$

The gradient of the Lagrangian with respect to sampling period variables is:

$\begin{matrix} {\lambda_{k - 1} = {{{- 2}h_{k}\frac{\partial\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}{\partial x_{k}}{U\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}} - {2{Qx}_{2k}h_{k}} - {\delta {\nabla_{x_{1k}}{\omega \left( x_{1k} \right)}}} - {F_{d}^{T}\lambda_{k}} - {h_{k}\left\lbrack {\sum\limits_{l = 1}^{L - 1}\; {\sum\limits_{i = 1}^{2}\; {\nabla_{x_{k}}{\psi_{\mu_{s}}\left( {\sigma_{k}^{i},{s_{i}^{D\; 1}\left( x_{k} \right)}} \right)}}}} \right\rbrack} - {h_{k}\left\lbrack {\sum\limits_{j = 1}^{J}\; {\nabla_{x_{k}}{\varphi_{\mu_{g}}\left( {\rho_{k}^{j},{g_{j}^{D}\left( {x_{k},v_{k},h_{k}} \right)}} \right)}}} \right\rbrack}}} & (94) \end{matrix}$

The gradient of the Lagrangian with respect to acceleration variables is:

$\begin{matrix} {{{\nabla_{vk}L_{\mu}^{D}} = {{2{\overset{\_}{H}(\zeta)}{U^{T}\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}h_{k}} + {z_{k}^{T}\lambda_{k}} + {h_{k}\left\lbrack {\sum\limits_{j = 1}^{J}\; {\nabla_{v_{k}}{\varphi_{\mu_{g}}\left( {\rho_{k}^{j},{g_{j}^{D}\left( {x_{k},v_{k},h_{k}} \right)}} \right)}}} \right\rbrack}}}\mspace{79mu} {where}\mspace{79mu} {{Z_{k} = {{\begin{bmatrix} I_{5 \times 5} & {h_{k}I_{5 \times 5}} \\ 0_{5 \times 5} & I_{5 \times 5} \end{bmatrix}x_{k}} - {\begin{bmatrix} {\frac{h_{k}^{2}}{2}I_{5 \times 5}} \\ {h_{k}I_{5 \times 5}} \end{bmatrix}v_{k}}}},\mspace{79mu} {k = 0},2,\ldots \mspace{14mu},{N - 1.}}} & (95) \end{matrix}$

In the previous equations, the quantities:

$\frac{\partial\left\lbrack {{{\overset{\_}{H}(\zeta)}v} + {{\overset{\_}{V}\left( {\zeta,\overset{.}{\zeta}} \right)}x_{2}} + {\overset{\_}{G}(\zeta)}} \right\rbrack}{\partial x_{k}},{\nabla_{x_{1k}}{\omega \left( x_{1k} \right)}},{\nabla_{x_{k}}\varphi_{\mu_{g}}},{and}$ ∇_(v_(k))φ_(μ_(g))

are calculated using numerical differentiation formulas in equations 82-86.

With respect to implementation issues, an initial solution involving a fast converging kinematic-feasible solution is defined. It is based on an optimal time trajectory parameterization. The initial time diseretizations are assumed to be an equidistant grid for convenience, i.e.,

$\begin{matrix} {{h_{k} = {{t_{k + 1} - t_{k}} = \frac{t_{f} - t_{0}}{N}}},{k = 1},2,\ldots \mspace{11mu},{N - 1}} & (96) \end{matrix}$

Upon this parameterized minimum time trajectory, a model for predictive planning is built in order to achieve a good initial solution for the AL. At the calculation of the inertia matrix and Coriolis and centrifugal dynamics components, we can use the approach developed initially for serial robots by Walker and Orin based on the application of a Newton-Euler model of the robot dynamics. This method is generally straightforward, and is suitable for the case of MPM robots.

Regarding search direction update, a limited-memory quasi-Newton-like method is used at each iteration of the optimization process to solve for the minimization step at the primal level of AL, since the problem is of large-scale type. Refer to the flowchart 400 of FIGS. 4A-4B, which outlines the AL algorithm function and operation.

In the present method, a systematic procedure is used for solving the augmented Lagrangian implementation, as shown in FIGS. 4A-4B. In this procedure, the first step is selecting robot parameters, task definition, (such as starting, intermediate and final poses), workspace limitations and simulation parameters. Then the kinematic unit defines a feasible solution satisfying initial and final poses. After that, the inner optimization loop solves for ALD minimization with respect to sampling periods and acceleration control variables to give the MPM dynamic state.

In the following step, this state is tested within against feasibility tolerances. The feasibility is done by testing the norms of all equality and inequality constraints against given tolerances. If the feasibility test fails, restart the inner optimization unit. Otherwise, if the feasibility test succeeds, i.e., the current values of the penalty are good in maintaining near-feasibility of iterations, a convergence test is made against optimal tolerances. If convergence holds, display optimal results and end the program. If there is non-convergence, go further to the dual part of ALD to test for constraints satisfaction, and update multipliers, penalty and tolerance parameters.

If the constraints are satisfied with respect to a first tolerance level (judged as good, although not optimal), then the multipliers are updated without decreasing penalty. If the constraints are violated with respect to a second tolerance level, then keep the multipliers unchanged and decrease the penalty to ensure that the next sub-problem will place more emphasis on reducing the constraints violations. In both cases, the tolerances are decreased to force the subsequent primal iterates to be increasingly accurate solutions of the primal problem.

Offline trajectory planning simulation involves using Matlab. The initial values of thetas were chosen as follows: θ_(L)=0; θ_(r)=0; θ₁=1.3; θ₂=0.8; θ₃=1.4. The target values of thetas were: θ_(L)=1; θ_(r)=0.8; θ₁=1.1; θ₂=1.2; θ₃=1.1.

A first case involved minimizing time, and a second case involved minimizing energy. Torque variations and position variations were recorded. Small but acceptable errors were observed.

Regarding the online trajectory planning, the result of the offline trajectory planning is used to run 50 different trajectories, each one contains 21 points along the trajectory. This gives 1050 samples, among which 950 are considered for training, whereas testing and validation datasets were each obtained using 100 entry samples.

The Adaptive Neural Fuzzy Inference System (ANFIS) module training system 500 is shown in FIG. 5. Training the ANFIS is an optimization task with the goal of finding a set of weights that minimizes an error measure. Observed error during the training was RMSE less than 0.1 in less than 10 epochs. It is noted that the configuration used for the learning is determined among infinitely many solutions that exist for each input.

It is to be understood that the present invention is not limited to the embodiments described above, but encompasses any and all embodiments within the scope of the following claims. 

We claim:
 1. A computer-implemented control method for a mobile parallel manipulator (MPM), comprising the steps of: (a) setting trajectory parameters in an offline dataset, the trajectory parameters including initial and final positions, limits on state components, strut lengths, torques, accelerations, and sampling periods; (b) formulating, off-line, a mathematical description of a constrained optimization problem for trajectory planning of the mobile parallel manipulator (MPM), the mathematical description including: an energy and time cost minimization function and augmented Lagrange multipliers utilized in an augmented Lagrange decoupling procedure (ALD) to transform the problem into a non-constrained problem, the energy and time cost minimization function including inputs describing: (i) a moving coordinate system related to self-movement of a base of the MPM relative to a fixed reference frame; and (ii) torques and angular positions of actuators coupled to an end plate of the MPM; an inertia matrix invertibility condition control law specification; a discrete dynamic model approximation using a multi-step Adams-Bashforth predictive-corrective formulation; a stopping criteria, wherein an iterative solution to the optimization problem describes at least one optimized trajectory; (c) saving the at least one optimized trajectory; (d) deriving at least one inverse kinematic solution based on the at least one optimized trajectory, wherein a joint position characterized by coordinates (q₁, q₂, q₃, q₄, q₅) is found from Cartesian coordinates (x, y, z, φ); (e) formulating, on-line, an optimized forward kinematic solution based on the at least one inverse kinematic solution; (f) transferring to the MPM a resultant trajectory plan based on the optimized forward kinematic solution; and (g) controlling the MPM actuators to constrain the MPM to execute motion consistent with the at least one optimized trajectory so that time, energy, and, alternatively, time and energy of the MPM motion is optimally minimized.
 2. The computer-implemented control method according to claim 1, wherein said at least one inverse kinematic solution deriving step further comprises the step of training a Neuro-Fuzzy Inverse Kinematics (NeFIK) network utilizing back propagation to produce an error-minimized joint position in a preferred configuration, the NeFIK network being a multi-layer feed forward adaptive network having: a first, two-input layer characterizing crisp values of the Cartesian position; a last, three-output layer characterizing corresponding crisp joint values; a first hidden fuzzification layer transferring the crisp inputs to linguistic variables via sigmoidal transfer functions; a second hidden rule layer applying a Product t-norm to produce firing strengths of each rule; and a third hidden normalization layer.
 3. The computer-implemented control method according to claim 1, further comprising the step of training an Adaptive Neural Fuzzy Inference System (ANFIS) with said at least one inverse kinematic solution to further optimize said optimized forward kinematic solution.
 4. The computer-implemented control method according to claim 3, wherein said further optimizing step comprises solely minimizing energy requirements of said forward kinematic solution.
 5. The computer-implemented control method according to claim 3, wherein said further optimizing step comprises solely minimizing time requirements of said forward kinematic solution.
 6. The computer-implemented control method according to claim 3, wherein said further optimizing step comprises minimizing time and energy requirements of said forward kinematic solution.
 7. The computer-implemented control method according to claim 3, wherein said discrete dynamic model approximation using a multi-step Adams-Bashforth predictive-corrective formulation is characterized by the relations: $x_{1_{k + 1}} = {x_{1_{k}} + {1.5h_{k}x_{2_{k}}} + {0.5h_{k}x_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}v_{2_{k}}}}$ $x_{2_{k + 1}} = {x_{2_{k}} + {1.5h_{k}v_{2_{k}}} + {0.5h_{k}v_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}{\overset{.}{v}}_{2_{k}}}}$ wherein x is a robot trajectory position state, v is a robot trajectory velocity state, and h is a representative sampling period.
 8. The computer-implemented control method according to claim 7, further comprising the step of characterizing said inertia matrix invertibility condition control law specification comprises the relation: u= H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ).
 9. The computer-implemented control method according to claim 8, further comprising the step of utilizing a Levenberg-Marquard version of the gradient back propagation algorithm as a training rule option in said NeFIK network while computing said energy and time cost minimization function.
 10. The computer-implemented control method for a mobile parallel manipulator according to claim 9, further comprising the step of avoiding singularity and joint limits during said ALD calculation by computing an augmented function characterized by the relation: {dot over (q)} _(s) ={dot over (q)} _(s1) +{dot over (q)} _(s2), where {dot over (q)} represents vector joint rates of said MPM.
 11. A computer software product, comprising a non-transitory medium readable by a processor, the non-transitory medium having stored thereon a set of instructions for performing a control method for a mobile parallel manipulator, the set of instructions including: (a) a first sequence of instructions which, when executed by the processor, causes said processor to set trajectory parameters in an offline dataset, said trajectory parameters including initial and final positions, limits on state components, strut lengths, torques, accelerations, and sampling periods; (b) a second sequence of instructions which, when executed by the processor, causes said processor to formulate, off-line, a mathematical description of a constrained optimization problem for trajectory planning of said mobile parallel manipulator (MPM), the mathematical description including: an energy and time cost minimization function and augmented Lagrange multipliers utilized in an augmented Lagrange decoupling procedure (ALD) to transform the problem into a non-constrained problem, said energy and time cost minimization function including inputs describing (i) a moving coordinate system related to self-movement of a base of said MPM relative to a fixed reference frame and (ii) torques and angular positions of actuators coupled to an end plate of said MPM; an inertia matrix invertibility condition control law specification; a discrete dynamic model approximation using a multi-step Adams-Bashforth predictive-corrective formulation; a stopping criteria, wherein an iterative solution to the optimization problem describes at least one optimized trajectory; (c) a third sequence of instructions which, when executed by the processor, causes said processor to save the at least one optimized trajectory; (d) a fourth sequence of instructions which, when executed by the processor, causes said processor to derive at least one inverse kinematic solution based on said at least one optimized trajectory wherein a joint position characterized by coordinates (q₁, q₂, q₃, q₄, q₅) is found from Cartesian coordinates (x, y, z, φ); (e) a fifth sequence of instructions which, when executed by the processor, causes said processor to formulate, on-line, an optimized forward kinematic solution based on said at least one inverse kinematic solution; (f) a sixth sequence of instructions which, when executed by the processor, causes said processor to transfer to the MPM a resultant trajectory plan based on said optimized forward kinematic solution; and (g) a seventh sequence of instructions which, when executed by the processor, causes said processor to control said MPM actuators, wherein said MPM executes motion consistent with the at least one optimized trajectory so that time, energy, and alternatively time and energy of the MPM motion is optimally minimized.
 12. The computer software product according to claim 11, further comprising an eighth sequence of instructions which, when executed by the processor, causes said processor to train a Neuro-Fuzzy Inverse Kinematics (NeFIK) network utilizing back propagation to produce an error minimized said joint position in a preferred configuration, wherein said NeFIK is a multi-layer feed forward adaptive network having a first, two input layer characterizing crisp values of said Cartesian position, a last, three output layer characterizing corresponding crisp joint values, a first hidden fuzzification layer transferring said crisp inputs to linguistic variables via sigmoidal transfer functions, a second hidden rule layer applying a Product t-norm to produce firing strengths of each said rule, and a third hidden normalization layer.
 13. The computer software product according to claim 11, further comprising a ninth sequence of instructions which, when executed by the processor, causes said processor to train an Adaptive Neural Fuzzy Inference System (ANFIS) with said at least one inverse kinematic solution to further optimize said optimized forward kinematic solution.
 14. The computer software product according to claim 13, further comprising a tenth sequence of instructions which, when executed by the processor, causes said processor to solely minimize energy requirements of said forward kinematic solution.
 15. The computer software product according to claim 13, further comprising an eleventh sequence of instructions which, when executed by the processor, causes said processor to solely minimize time requirements of said forward kinematic solution.
 16. The computer software product according to claim 13, further comprising a twelfth sequence of instructions which, when executed by the processor, causes said processor to minimize time and energy requirements of said forward kinematic solution.
 17. The computer software product according to claim 13, further comprising a thirteenth sequence of instructions which, when executed by the processor, causes said processor to, during said discrete dynamic model approximation, use a multi-step Adams-Bashforth predictive-corrective formulation is characterized by the relations: $x_{1_{k + 1}} = {x_{1_{k}} + {1.5h_{k}x_{2_{k}}} + {0.5h_{k}x_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}v_{2_{k}}}}$ $x_{2_{k + 1}} = {x_{2_{k}} + {1.5h_{k}v_{2_{k}}} + {0.5h_{k}v_{2_{k - 1}}} + {\frac{5h_{k}^{3}}{12}{\overset{.}{v}}_{2_{k}}}}$ wherein x is a robot trajectory position state, ν is a robot trajectory velocity state, and h is a representative sampling period.
 18. The computer software product according to claim 17, further comprising a fourteenth sequence of instructions which, when executed by the processor, causes said processor to characterize said inertia matrix invertibility condition control law according to the relation: u= H (ζ)v+ V (ζ,{dot over (ζ)})x ₂ + G (ζ).
 19. The computer software product according to claim 18, further comprising a fifteenth sequence of instructions which, when executed by the processor, causes said processor to utilize a Levenberg-Marquard version of the gradient back propagation algorithm as a training rule option in said NeFIK network while computing said energy and time cost minimization function.
 20. The computer software product according to claim 19, further comprising a sixteenth sequence of instructions which, when executed by the processor, causes said processor to avoid singularity and joint limits during said ALD calculation by computing an augmented function characterized by the relation: {dot over (q)} _(s) ={dot over (q)} _(s1) +{dot over (q)} _(s2), where {dot over (q)} represents vector joint rates of said MPM. 